/**
 * @author Vitor Franco do Carmo (vitor.carmo@cpmbraxis.com)
 * @since 07/08/2013
 *
 */
package br.com.vfcfw.test.functional.browser;

import org.openqa.selenium.WebDriver;

/**
 * Interface que define os métodos que deverão ser implementados por cada tipo de classe que representa um navegador.
 * 
 * @author Vitor Franco do Carmo (vitor.carmo@cpmbraxis.com)
 * @since 07/08/2013
 * 
 */
public interface INavegador {

    /**
     * Inicializa os objetos antes da execução da classe de teste funcional.
     */
    public void inicializarServico();

    /**
     * Finaliza os objetos depois da execução da classe de teste funcional.
     */
    public void finalizarServico();

    /**
     * Inicializa os objetos antes da execução de cada teste funcional.
     */
    public void inicializarTeste();

    /**
     * Finaliza os objetos depois da execução de cada teste funcional.
     */
    public void finalizarTeste();

    /**
     * Retorna a referência para o {@link WebDriver}.
     * 
     * @return {@link WebDriver}.
     */
    public WebDriver obterDriver();

}
